#ifndef __DLINKLIST_H__
#define __DLINKLIST_H__

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

// 双向循环链表的节点(处理整数)
typedef struct node
{
    int data; 
    struct node *prev;
    struct node *next;
}dnode, *dlist;

// 基本API
dlist init_list();
dlist add_list(dlist head, dlist newnode);
dlist add_list_tail(dlist head, dlist newnode);
void remove_node(dlist p);
void move_tail(dlist head, dlist p);
void show(dlist head);
void destroy_init(dlist head);
dlist new_node(int num);

#endif